In an enterprise storage solution, a multipath technology has been widely used in a serially-attached small computer system interface (SAS) domain to provide path redundancy, fault toleration, and load balance. As shown in FIG. 1, in a common use case in a backend storage application, a plurality of disk clusters (JBODs, Just A Bunch of Disks) (101-104) are provided, wherein disk drivers (121-128) in each JBOD are routed to different host bus adapter (HBAs) ports (111, 112) via one or more expanders (131-138), such that two paths to the server (110) exist. The multipath technology is used for path switching between two HBA ports for a given disk driver.
In the field of load balance, multipath plays an important role, and is very critical for the whole system performance. For example, in FIG. 1, a multipath module is needed to balance workloads between two paths of a disk driver. Some reasons are detailed below.
One chain in the SAS domain as shown in FIG. 1 may have a very large capacity of storage devices, which causes bandwidth saturation of a single HBA port. For example, for a Data Domain™ (DD) product, at most 7 disk enclosures can be connected in a chain. Each disk enclosure may include 15 disks and provide an input output (IO) throughput of 800 MB per second. This means that, in the worst case, a busy HBA with a 2 GB/s bandwidth can easily become a bottleneck of the whole system, even if another HBA still has enough bandwidth available at the same time.
In particular, the situation will become even worse if a solid-state disk (SSD) enclosure is introduced into a chain. First, the SSD disk enclosure produces more throughput, which will accelerate saturation of the bandwidth. Second, due to different characteristics from a hard disk driver (HDD) disk medium, the SSD will consume much more bandwidth, such that without an effective congestion control policy in SAS protocol, starvation may occur to an HDD enclosure located at the same chain with the SSD.
In the embodiments of the present disclosure, methods and apparatus for providing effective path selection and load balance in a storage system are provided.